perm filename COMT.PAL[HAL,HE]4 blob
sn#166306 filedate 1975-06-28 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Test of condition monitors
C00004 00003 SMALL TEST OF ARITHMETIC
C00005 00004 SMALL TEST OF ARITHMETIC
C00006 00005 Test of the FOR loop.
C00007 00006 Test of graph structure: calculators
C00008 00007 Test of graph structure: changers
C00009 ENDMK
C⊗;
; Test of condition monitors
COMMENT ⊗
XPRINT
L45 ;Say hello
XCMMAK
20 ;CM at 20
L30 ;Code at L30 for checker
L31 ;Code at L31 for body
XMVAR ;
10 ;X
12 ;y
0
XPUSH ;X ← L41
L41
XCHNGE
10
XPUSH ;Y ← L41.5 (= 0)
L41.5
XCHNGE
12
XCMENB ;Enable checker
20
L32: XGTVAL ;X ← X - 1
10 ;
XCOPY ;
0
XPRNTS ;Say what X is
XPUSH ;
L43 ;Push 1
XSSUB ;Subtract
XCHNGE ;
10 ;
XGTVAL ;
12 ;Y=0?
XJUMPC ;
2 ;
L32 ;If so, loop
XCMDEST ;else get rid of checker
20 ;
0
XTERMINATE;and go away
L30: XCMSKED ;Checker body
XPRINT ;Say "."
L46 ;
XGTVAL ;X≤0?
10 ;
XJUMPC ;
7 ;if GT then jump
L30 ;
XCMTRIG ;Yes. trigger
XJUMP ;
L30 ;
L31: XCMBWT ;Wait for signal
XPRINT
L44 ;Say "zero"
XPUSH ;
L41 ;SET Y ← 10.0
XCHNGE ;
12 ;
XJUMP ;
L31 ;
;data area
L41: 41040 ;10.0
0
L41.5: 0 ;0.0
0
L42: ASCIE </
DECREMENTING/>
L43: 40200 ;1.0
0
L44: ASCIE </
ZERO/>
L45: ASCIE </
TEST OF CONDITION CHECKERS
/>
L46: ASCIE </./>
⊗
; SMALL TEST OF ARITHMETIC
COMMENT ⊗ Save the following for another time.
L1: XMVAR
10 ;X
12 ;Y
14 ;Z
16 ;W
0
XPUSH ;X ← L103
L103
XCHNGE
10
XPUSH ;Y ← L105
L105
XCHNGE
12
XPUSH ;Z ← L107
L107
XCHNGE
14
XGTVAL ;W ← X . Y . Z
10
XGTVAL
12
XGTVAL
14
L2: XVMAKE
XCHNGE
16
XTERMINATE
L103: ;VECTOR(44.5, 44.5, 44.5, 2)
41462
0
41462
0
41462
0
40400
0
L105: ;VECTOR(10, 10, 10, 1)
41040
0
41040
0
41040
0
40200
0
L107: ;VECTOR(20, 20, 20, 1)
41240
0
41240
0
41240
0
40200
0
⊗ end of commented out portion
; SMALL TEST OF ARITHMETIC
COMMENT ⊗ Save the following for another time.
L1: XMVAR
10 ;X
12 ;Y
14 ;Z
16 ;W
0
XPUSH ;X ← L103
L103
XCHNGE
10
XPUSH ;Y ← L105
L105
XCHNGE
12
XPUSH ;Z ← L107
L107
XCHNGE
14
XGTVAL ;W ← X . Y . Z
10
XGTVAL
12
XGTVAL
14
L2: XVMAKE
XCHNGE
16
XTERMINATE
L103: ;VECTOR(44.5, 44.5, 44.5, 2)
41462
0
41462
0
41462
0
40400
0
L105: ;VECTOR(10, 10, 10, 1)
41040
0
41040
0
41040
0
40200
0
L107: ;VECTOR(20, 20, 20, 1)
41240
0
41240
0
41240
0
40200
0
⊗ end of commented out portion
; Test of the FOR loop.
COMMENT ⊗
;BLOCK
XMVAR
22
20
0
;FOR LOOP
XPUSH
L1
XPUSH
L2
XPUSH
L3
L4: XCOPY
2 ;Current value
XCHNGE
20 ;Loop variable
XFORCHECK
L5
;Assignment
XGTVAL
20
XCOPY
0
XPRNTS ;Say twhat it is now
XCHNGE
22
XCOPY
0 ;Step size
XCOPY
3 ;Current value
XSADD
XREPLACE
3 ;Current value
XJUMP
L4
L5:
XPOP
XPOP
XPOP
;END FOR
;Block end cleanup
XKVAR
22
20
0
;END BLOCK
XTERMINATE
L1:
40200
0
L2:
41040
0
L3:
40200
0
⊗
; Test of graph structure: calculators
COMMENT ⊗
XMVAR
20 ;X
22 ;Y
24 ;Z
26 ;W
0 ;
XPUSH ;X ← 1
L1 ;
XCHNGE ;
20 ;
XPUSH ;Y ← 1
L1 ;
XCHNGE ;
22 ;
XMCLC ;Z <= X + Y
24 ;
L10 ;code
20 ;neededs
22 ;
0 ;
XMCLC ;W <= X + Y
26 ;
L10 ;code
20 ;neededs
22 ;
0 ;
XMCLC ;W <= Z
26 ;
L11 ;code
24 ;neededs
0 ;
XBREAK ;
XGTVAL ;Print W
26 ;
XPRNTS ;
XKVAR ;
20 ;
0 ;
XBREAK ;
XKVAR ;
22 ;
24 ;
26 ;
0 ;
XTERMINATE
L10: XGTVAL ;X
20 ;
XGTVAL ;Y
22 ;
XSADD ;+
XENDCLC ;
L11: XGTVAL ;Z
24 ;
XENDCLC ;
L1: 40200 ;1
0
⊗
; Test of graph structure: changers
XMVAR
20 ;X
22 ;Y
24 ;Z
26 ;W
0 ;
XPUSH ;X ← 1
L1 ;
XCHNGE ;
20 ;
XPUSH ;Y ← 1
L1 ;
XCHNGE ;
22 ;
XMCHG ;WHEN CHANGE X DO [Z ← NEW-OLD; PRINT Z]
20 ;
L10 ;code
XMCHG ;WHEN CHANGE Z DO [PRINT Z]
24 ;
L11 ;code
XPUSH ;X ← 10
L2 ;
XCHNGE ;
20 ;
XTERMINATE
L10: XGTNEW ;
XGTOLD ;
XSSUB ;-
XCOPY ;
0
XPRNTS ;
XCHNGE ;
24 ;Z
XTERMINATE
L11: XGTVAL ;
24 ;Z
XPRNTS ;
XTERMINATE
L1: 40200 ;1
0
L2: 41040 ;=10
0